home *** CD-ROM | disk | FTP | other *** search
/ Gold Medal Software 2 / Gold Medal Software Volume 2 (Gold Medal) (1994).iso / windows / win31 / macsyma.arj / MACSDEMO.EXE / JORDANFO.OUT < prev    next >
Text File  |  1993-08-18  |  9KB  |  169 lines

  1.  
  2. (c1) /*      DEMONSTRATION OF PACKAGE JORDAN_FORM
  3. */
  4. if get('jordan_form,'version)=false then load("jordan_form")$
  5. C:\MACGOLD5\share\jordan_f.fas being loaded.
  6. C:\MACGOLD5\share\jordanl.fas being loaded.
  7. C:\MACGOLD5\share\powers.fas being loaded.
  8.  
  9. (c2) (jordan_option_ncharpoly:false,showtime:all,smp(x):=matrixmap(ratsimp,x))$
  10. Time= 0 msecs
  11.  
  12. (c3) a1:matrix([5,-1,1,1,0,0],[1,3,-1,-1,0,0],[0,0,4,0,1,1],[0,0,0,4,-1,-1],
  13. [0,0,0,0,3,1],[0,0,0,0,1,3]);
  14. Time= 0 msecs
  15. |$label(0,15,Times New Roman,$(d3$))$matrix(6,6,5,$greektext(-) 1,1,1,0,0,1,3,$greektext(-) 1,$greektext(-) 1,0,0,0,0,4,0,1,1,0,0,0,4,$greektext(-) 1,$greektext(-) 1,0,0,0,0,3,1,0,0,0,0,1,3)
  16.  
  17. (c4) jordanform(a1);
  18. Time= 549 msecs
  19. |$label(0,15,Times New Roman,$(d4$))$matrix(6,6,2,0,0,0,0,0,0,4,1,0,0,0,0,0,4,1,0,0,0,0,0,4,0,0,0,0,0,0,4,1,0,0,0,0,0,4)
  20.  
  21. (c5) p1:jordan_simtran(a1);
  22. C:\MACGOLD5\share\matsolve.fas being loaded.
  23. Time= 2469 msecs
  24. |$label(0,15,Times New Roman,$(d5$))$matrix(6,6,2 %r4 + 2 %r3,%r4 + %r3 $greektext(-) %r2 + %r1,%r1,%r6 $greektext(-) %r7,%r6,0,2 %r4 + 2 %r3,$greektext(-) %r4 $greektext(-) %r3 $greektext(-) %r2 + %r1,%r2,%r6 $greektext(-) %r7,%r7,0,0,2 %r5,%r3,2 %r9,%r8,0,0,$greektext(-) 2 %r5,%r4,$greektext(-) 2 %r9,$greektext(-) %r8,0,0,0,%r5,0,%r9,%r10,0,0,%r5,0,%r9,$greektext(-) %r10)
  25.  
  26. (c6) smp(p1^^(-1).a1.p1);
  27. Time= 10379 msecs
  28. |$label(0,15,Times New Roman,$(d6$))$matrix(6,6,4,1,0,0,0,0,0,4,1,0,0,0,0,0,4,0,0,0,0,0,0,4,1,0,0,0,0,0,4,0,0,0,0,0,0,2)
  29.  
  30. (c7) hilbert:genmatrix(lambda([i,j],1/(i+j)),4)$
  31. Time= 59 msecs
  32.  
  33. (c8) a2:prettyjordan([[%i,[[2,1]]],[-%i,[[2,1]]]],4);
  34. Time= 0 msecs
  35. |$label(0,15,Times New Roman,$(d8$))$matrix(4,4,$italictext(i),1,0,0,0,$italictext(i),0,0,0,0,$greektext(-) $italictext(i),1,0,0,0,$greektext(-) $italictext(i))
  36.  
  37. (c9) a2:matrixmap('ratsimp,hilbert.a2.hilbert^^-1);
  38. Time= 709 msecs
  39. |$label(0,15,Times New Roman,$(d9$))$matrix(4,4,$greektext(-) 601 $italictext(i) $greektext(-) 880,4200 $italictext(i) + 6150,$greektext(-) 7980 $italictext(i) $greektext(-) 11760,4480 $italictext(i) + 6650,$greektext(-) $q(1400 $italictext(i) + 1872,3),3249 $italictext(i) + 4380,$greektext(-) 6160 $italictext(i) $greektext(-) 8400,$q(10360 $italictext(i) + 14280,3),$greektext(-) $q(1140 $italictext(i) + 1460,3),2640 $italictext(i) + 3425,$greektext(-) 4999 $italictext(i) $greektext(-) 6580,$q(8400 $italictext(i) + 11200,3),$greektext(-) 320 $italictext(i) $greektext(-) 400,2220 $italictext(i) + 2820,$greektext(-) 4200 $italictext(i) $greektext(-) 5424,2351 $italictext(i) + 3080)
  40.  
  41. (c10) jordanform(a2);
  42. Time= 2029 msecs
  43. |$label(0,15,Times New Roman,$(d10$))$matrix(4,4,$greektext(-) $italictext(i),1,0,0,0,$greektext(-) $italictext(i),0,0,0,0,$italictext(i),1,0,0,0,$italictext(i))
  44.  
  45. (c11) p2:smp(jordan_simtran(a2));
  46. Time= 2799 msecs
  47. |$label(0,15,Times New Roman,$(d11$))$matrix(4,4,18 %r12 $greektext(-) 12 %r11,%r11,$q(75 %r14 $greektext(-) 60 %r13,2),%r13,12 %r12 $greektext(-) 8 %r11,%r12,30 %r14 $greektext(-) 24 %r13,%r14,9 %r12 $greektext(-) 6 %r11,$q(12 %r12 $greektext(-) 3 %r11,10),25 %r14 $greektext(-) 20 %r13,$q(30 %r14 $greektext(-) 10 %r13,21),$q(36 %r12 $greektext(-) 24 %r11,5),$q(6 %r12 $greektext(-) 2 %r11,5),$q(150 %r14 $greektext(-) 120 %r13,7),$q(45 %r14 $greektext(-) 20 %r13,28))
  48.  
  49. (c12) smp(p2^^(-1).a2.p2);
  50. Time= 15820 msecs
  51. |$label(0,15,Times New Roman,$(d12$))$matrix(4,4,$italictext(i),1,0,0,0,$italictext(i),0,0,0,0,$greektext(-) $italictext(i),1,0,0,0,$greektext(-) $italictext(i))
  52.  
  53. (c13) JORDAN_RANK_SIMPLIFIER:lambda([x],trigreduce(rat(x)))$
  54. Time= 0 msecs
  55.  
  56. (c14) a3:MATRIX([%I-SIN(2*X)/2,COS(2*X)/2+1/2],[COS(2*X)/2-1/2,SIN(2*X)/2+%I]);
  57. Time= 0 msecs
  58. |$label(0,15,Times New Roman,$(d14$))$matrix(2,2,$italictext(i) $greektext(-) $q(sin$paren(2 x),2),$q(cos$paren(2 x),2) + $q(1,2),$q(cos$paren(2 x),2) $greektext(-) $q(1,2),$q(sin$paren(2 x),2) + $italictext(i))
  59.  
  60. (c15) jordanform(a3);
  61. C:\MACGOLD5\library1\trgred.fas being loaded.
  62. C:\MACGOLD5\share\blinalgl.fas being loaded.
  63. Time= 3509 msecs
  64. |$label(0,15,Times New Roman,$(d15$))$matrix(2,2,$italictext(i),1,0,$italictext(i))
  65.  
  66. (c16) JORDAN_RANK_SIMPLIFIER:false$
  67. Time= 0 msecs
  68.  
  69. (c17) /* Solve can't find the eigenvalues of the following. However, 
  70.    eigpolylist demonstrates that indeed the matrix is diagonal. */
  71. frank:genmatrix(lambda([i,j],if i>j+1 then 0 else max(i,j)),5,5);
  72. Time= 59 msecs
  73. |$label(0,15,Times New Roman,$(d17$))$matrix(5,5,1,2,3,4,5,2,2,3,4,5,0,3,3,4,5,0,0,4,4,5,0,0,0,5,5)
  74.  
  75. (c18) jordanform(frank);
  76. Time= 1759 msecs
  77. |$label(0,15,Times New Roman,$(d18$))$open([)$open([)$open([)$sup(g7424,5)$hinge() $greektext(-) 15 $sup(g7424,4)$hinge() + 31 $sup(g7424,3)$hinge() + 25 $sup(g7424,2)$hinge() + 21 g7424$hinge() $greektext(-) 5$, $open([)$open([)1$, 1$close(])$close(])$close(])$close(])$, $hinge()JORDAN_FORM: roots not found.$close(])
  78.  
  79. (c19) eigpolylist;
  80. Time= 0 msecs
  81. |$label(0,15,Times New Roman,$(d19$))$open([)$open([)$open([)$sup(g7424,5)$hinge() $greektext(-) 15 $sup(g7424,4)$hinge() + 31 $sup(g7424,3)$hinge() + 25 $sup(g7424,2)$hinge() + 21 g7424$hinge() $greektext(-) 5$, 1$close(])$, $hinge()$open([)$open([)1$, 1$close(])$close(])$close(])$close(])
  82.  
  83. (c20) eigblocklist;
  84. Time= 0 msecs
  85. |$label(0,15,Times New Roman,$(d20$))$open([)$close(])
  86.  
  87. (c21) test1:prettyjordan([[1,[[1,2]]],[2,[[1,3]]],[3,[[1,1]]]],6);
  88. Time= 0 msecs
  89. |$label(0,15,Times New Roman,$(d21$))$matrix(6,6,1,0,0,0,0,0,0,1,0,0,0,0,0,0,2,0,0,0,0,0,0,2,0,0,0,0,0,0,2,0,0,0,0,0,0,3)
  90.  
  91. (c22) test2:prettyjordan([[1,[[3,1]]],[2,[[3,1]]]],6);
  92. Time= 0 msecs
  93. |$label(0,15,Times New Roman,$(d22$))$matrix(6,6,1,1,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,2,1,0,0,0,0,0,2,1,0,0,0,0,0,2)
  94.  
  95. (c23) test3:prettyjordan([[1,[[6,1]]]],6);
  96. Time= 0 msecs
  97. |$label(0,15,Times New Roman,$(d23$))$matrix(6,6,1,1,0,0,0,0,0,1,1,0,0,0,0,0,1,1,0,0,0,0,0,1,1,0,0,0,0,0,1,1,0,0,0,0,0,1)
  98.  
  99. (c24) jordanform(test1);
  100. Time= 1099 msecs
  101. |$label(0,15,Times New Roman,$(d24$))$matrix(6,6,1,0,0,0,0,0,0,1,0,0,0,0,0,0,2,0,0,0,0,0,0,2,0,0,0,0,0,0,2,0,0,0,0,0,0,3)
  102.  
  103. (c25) jordanform(test2);
  104. Time= 1210 msecs
  105. |$label(0,15,Times New Roman,$(d25$))$matrix(6,6,1,1,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,2,1,0,0,0,0,0,2,1,0,0,0,0,0,2)
  106.  
  107. (c26) jordanform(test3);
  108. Time= 390 msecs
  109. |$label(0,15,Times New Roman,$(d26$))$matrix(6,6,1,1,0,0,0,0,0,1,1,0,0,0,0,0,1,1,0,0,0,0,0,1,1,0,0,0,0,0,1,1,0,0,0,0,0,1)
  110.  
  111. (c27) jordan_option_ncharpoly:true;
  112. Time= 0 msecs
  113. |$label(0,15,Times New Roman,$(d27$))true
  114.  
  115. (c28) test3:prettyjordan([[1,[[12,1]]]],12);
  116. Time= 0 msecs
  117. |$label(0,15,Times New Roman,$(d28$))$matrix(12,12,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,1)
  118.  
  119. (c29) jordanform(test3);
  120. C:\MACGOLD5\share\nchrpl.fas being loaded.
  121. Time= 14059 msecs
  122. |$label(0,15,Times New Roman,$(d29$))$matrix(12,12,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,1)
  123.  
  124. (c30) jordan_option_ncharpoly:false;
  125. Time= 0 msecs
  126. |$label(0,15,Times New Roman,$(d30$))false
  127.  
  128. (c31) make_van_vect(exp,len):= block([temp:[]],for i:0 thru len - 1 do(temp:cons(exp^i,temp)),
  129.              reverse(temp))$
  130. Time= 0 msecs
  131.  
  132. (c32) make_vandermonde(lis):=block([len:length(lis),temp:[]],
  133.           for i thru len do(temp:cons(make_van_vect(lis[i],len),temp))
  134.           ,apply('matrix,reverse(temp)))$
  135. Time= 0 msecs
  136.  
  137. (c33) /* the following constructs an algebraic commutative ring. */
  138. (tellrat(w^3-1),algebraic:true,modulus:3);
  139. Time= 0 msecs
  140. |$label(0,15,Times New Roman,$(d33$))3
  141.  
  142. (c34) sim:make_vandermonde(make_van_vect(w,3));
  143. Time= 109 msecs
  144. |$label(0,15,Times New Roman,$(d34$))$matrix(3,3,1,1,1,1,w,$sup(w,2),1,$sup(w,2),$sup(w,4))
  145.  
  146. (c35) jordanform(sim);
  147. C:\MACGOLD5\library1\result.fas being loaded.
  148. Time= 1810 msecs
  149. |$label(0,15,Times New Roman,$(d35$))$matrix(3,3,w $greektext(-) 1,1,0,0,w $greektext(-) 1,0,0,0,0)
  150.  
  151. (c36) (untellrat(w),algebraic:false,modulus:false);
  152. Time= 0 msecs
  153. |$label(0,15,Times New Roman,$(d36$))false
  154.  
  155. (c37) /* the following example raises a matrix to an arbitrary power. */
  156. matrix([7,1,2],[-1,7,0],[1,-1,6]);
  157. Time= 0 msecs
  158. |$label(0,15,Times New Roman,$(d37$))$matrix(3,3,7,1,2,$greektext(-) 1,7,0,1,$greektext(-) 1,6)
  159.  
  160. (c38) jordan_matrix_expt(%,k);
  161. Time= 990 msecs
  162. |$label(0,15,Times New Roman,$(d38$))$matrix(3,3,$q($sup(8,k) + $sup(6,k),2),$q(k $sup(6,k),6),$q(3 $sup(8,k) + $open($()k $greektext(-) 3$close($)) $sup(6,k),6),$greektext(-) $q($sup(8,k) $greektext(-) $sup(6,k),2),$q($open($()k + 6$close($)) $sup(6,k),6),$greektext(-) $q(3 $sup(8,k) + $open($()$greektext(-) k $greektext(-) 3$close($)) $sup(6,k),6),$q($sup(8,k) $greektext(-) $sup(6,k),2),$greektext(-) $q(k $sup(6,k),6),$q(3 $sup(8,k) + $open($()3 $greektext(-) k$close($)) $sup(6,k),6))
  163.  
  164. (c39) /* Cleanup */
  165. (remfunction(make_van_vect,make_vandermonde,smp), reset(showtime),
  166.  remvalue(a1,p1,hilbert,a2,p2,a3,frank,test1,test2,test3,sim))$
  167. Time= 0 msecs
  168. Accumulated Computation Time= 62767 msecs
  169.